/*
 * Powered By [ERP]
 * Since 2014 - 2016
 */

package com.erp.cloudfi.org.profitcenter.service;

import com.erp.cloudfi.org.profitcenter.model.Profitcenter;
import com.erp.cloudfi.org.profitcenter.model.ProfitcenterApiDataMap;
import com.erp.cloudfi.org.profitcenter.vo.query.ProfitcenterQuery;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/**
 * @author smn email:shimengnan007@163.com
 * @version 1.0
 * @since 1.0
 */
@Service
@Transactional
public interface ProfitcenterService {
  @Transactional(readOnly = true)
  public List<Profitcenter> findCentersByGroup(String longnumber);

  @Transactional(readOnly = true)
  public List<Profitcenter> getCentersByCorpIdForFront(String corpId, Integer status);

  int removeById(String id, boolean checkCreateByCorpid);

  @Transactional(readOnly = true)
  public List<Profitcenter> getCentersByCorpId(String corpId, Integer status);
  @Transactional(readOnly = true)
  List<Profitcenter> getCentersByCorpidList(List<String> corpidList, Integer status);

  @Transactional(readOnly = true)
  public List<Profitcenter> getCentersByCorpId(String corpId);

  @Transactional(readOnly = true)
  public List<String> getCenteridsByCorpId(String corpId);

  @Transactional(readOnly = true)
  public List<String> getCenteridsNotCorpId(String corpId);

  public List<String> getIds();

  public List<String> getIds2();

  @Transactional(readOnly = true)
  public ProfitcenterApiDataMap getProfitcenterApiMap(ProfitcenterQuery query);

  void updateEffectdate(Profitcenter profitcenter);

  boolean syncAllToMcp();

  void autoRemoveByCorpid(String id);
  
    Map<String,Profitcenter> getAllProfitcenterIdEntityMap();
}
